通过 USB 开发入门

您所在的位置:网站首页 usb pc接口 通过 USB 开发入门

通过 USB 开发入门

2024-06-09 14:28| 来源: 网络整理| 查看: 265

USB 开发入门 项目01/17/2024

通用串行总线 (USB) 设备通过配置、接口、备用设置和终结点来定义其功能和功能。 本主题提供这些概念的高级概述。 有关详细信息,请参阅 通用串行总线文档中的 USB 规范。

在本节中 主题 说明 USB 设备布局 USB 设备通过配置、接口、备用设置和终结点定义其功能和功能。 本主题提供这些概念的高级概述。 标准 USB 描述符 USB 设备在名为 USB 描述符的数据结构中提供有关自身的信息。 本部分提供有关设备、配置、接口和终结点描述符的信息,以及从 USB 设备检索它们的方法。 USB 终结点及其管道 USB 设备具有用于数据传输的终结点。 在主机端,终结点由管道表示。 本主题区分这两个术语。 Windows 中的 USB - 常见问题解答 本主题为刚开始开发和集成 USB 设备和驱动程序与 Windows 操作系统的驱动程序开发人员提供常见问题。 常见 USB 方案

1 - 获取用于通信的设备句柄 ,并使用检索到的句柄或对象发送数据传输。

客户端驱动程序 UWP 应用 Windows 桌面应用 KMDF:WdfUsbTargetDeviceCreateWithParameters

UMDF:IWDFUsbTargetDevice

UsbDevice

如何连接到 USB 设备

WinUsb_Initialize

编写基于 WinUSB 模板的 Windows 桌面应用

USB 描述符检索 以获取有关设备配置的信息, () 、接口 () 、设置 () 及其终结点 () 。

客户端驱动程序 UWP 应用 Windows 桌面应用 KMDF:

WdfUsbTargetDeviceGetDeviceDescriptorWdfUsbTargetDeviceRetrieveConfigDescriptor

UMDF:

IWDFUsbTargetDevice::RetrieveDescriptor

USB 描述符

UsbDevice.DeviceDescriptorUsbConfiguration.DescriptorsUsbInterface.DescriptorsUsbInterfaceSetting.Descriptors

如何获取 USB 描述符

WinUsb_GetDescriptorWinUsb_QueryInterfaceSettingsWinUsb_QueryPipe

向设备查询 USB 描述符

2 - 配置设备 以选择活动的 USB 配置和每个接口的设置。

客户端驱动程序 UWP 应用 Windows 桌面应用 KMDF:WdfUsbTargetDeviceSelectConfigWdfUsbTargetDeviceCreateUrbUSBD_SelectConfigUrbAllocateAndBuildWdfUsbInterfaceSelectSetting

如何为 USB 设备选择配置。

如何在 USB 接口中选择备用设置。

UMDF:不支持配置选择

IWDFUsbInterface::SelectSetting

UsbInterfaceSetting.SelectSettingAsync

如何选择 USB 接口设置

WinUsb_SetCurrentAlternateSetting

3 - 发送控制传输 ,以配置设备和执行特定于特定设备的供应商命令。

客户端驱动程序 UWP 应用 Windows 桌面应用 KMDF:WdfUsbTargetDeviceSendControlTransferSynchronouslyWdfUsbTargetDeviceFormatRequestForControlTransferUSBD_SelectConfigUrbAllocateAndBuild

UMDF:IWDFUsbTargetDevice::FormatRequestForControlTransfer

如何发送 USB 控制传输

SendControlInTransferAsyncSendControlOutTransferAsync

如何发送 USB 控制传输

WinUsb_ControlTransfer

将控制传输发送到默认终结点

4 - 发送批量传输,通常由传输大量数据的大容量存储设备使用。

客户端驱动程序 UWP 应用 Windows 桌面应用 KMDF:WdfUsbTargetPipeReadSynchronouslyWdfUsbTargetPipeWriteSynchronouslyWdfUsbTargetPipeFormatRequestForReadWdfUsbTargetPipeFormatRequestForWrite

如何将发送 USB 大容量传输请求

如何使用连续读取器从 USB 管道读取数据

UMDF:IUsbTargetPipeContinuousReaderCallbackReadCompleteIWDFUsbTargetPipeIWDFUsbTargetPipe2

UsbBulkInPipe.InputStreamUsbBulkOutPipe.OutputStream

如何发送 USB 批量传输请求

WinUsb_ReadPipeWinUsb_ReadPipe

发出 I/O 请求

5 — 发送中断传输。 读取数据以检索硬件中断数据。

客户端驱动程序 UWP 应用 Windows 桌面应用 与批量传输相同 UsbInterruptInPipe.DataReceivedUsbInterruptOutPipe.OutputStream

如何发送 USB 中断传输请求

与批量传输相同

6 - 发送常量传输,主要用于媒体流式处理设备。

客户端驱动程序 UWP 应用 Windows 桌面应用 KMDF:WdfUsbTargetDeviceCreateIsochUrb

如何将数据传输到 USB 常时等量终结点

UMDF:不支持

不支持 WinUsb_RegisterIsochBufferWinUsb_UnregisterIsochBufferWinUsb_WriteIsochPipeAsapWinUsb_ReadIsochPipeAsapWinUsb_WriteIsochPipeWinUsb_ReadIsochPipeWinUsb_GetCurrentFrameNumberWinUsb_GetAdjustedFrameNumber

从 WinUSB 桌面应用发送 USB 常时等量传输

7 — USB 选择性挂起 ,允许设备进入低功耗状态,并使设备恢复工作状态。

客户端驱动程序 UWP 应用 Windows 桌面应用 KMDF:WDF_DEVICE_POWER_POLICY_IDLE_SETTINGSWdfDeviceAssignS0IdleSettings

UMDF:IWDFUsbTargetDevice::SetPowerPolicyIWDFDevice2::AssignS0IdleSettingsIWDFDevice3::AssignS0IdleSettingsEx

如何将设备发送到选择性挂起

不支持 WinUsb_SetPowerPolicy

WinUSB 电源管理

另请参阅 通用串行总线 (USB)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3